package com.hsurosy.hsuchain.nft.base.response;

import lombok.Data;

/**
 * 单条记录的响应类
 *
 * @Author Hsu琛君珩
 * @Date 2024-10-04 18:49
 * @Description
 * @Version: v1.0.0
 */
@Data
public class SingleResponse<T> extends BaseResponse {

    private static final long serialVersionUID = 1L;

    /**
     * 响应数据
     */
    private T data;

    /**
     * 创建包含单条数据的成功响应
     *
     * @param data 响应数据
     * @param <T> 数据类型
     * @return SingleResponse 包含单条数据的响应对象
     */
    public static <T> SingleResponse<T> of(T data) {
        SingleResponse<T> singleResponse = new SingleResponse<>();
        singleResponse.setSuccess(true);
        singleResponse.setData(data);
        return singleResponse;
    }

    /**
     * 创建失败的响应
     *
     * @param errorCode 错误码
     * @param errorMessage 错误信息
     * @param <T> 数据类型
     * @return SingleResponse 表示失败的响应对象
     */
    public static <T> SingleResponse<T> fail(String errorCode, String errorMessage) {
        SingleResponse<T> singleResponse = new SingleResponse<>();
        singleResponse.setSuccess(false);
        singleResponse.setResponseCode(errorCode);
        singleResponse.setResponseMessage(errorMessage);
        return singleResponse;
    }
}
